$(() => {

   // 设置全局的页码和页数量
   var pageNum = 1;
   var pageSize = 5;


   function init(search) {
      $.ajax({
         type: 'get',
         url: '/getAllPosts',
         //分页需要传参
         data: {
            pageNum: pageNum,
            pageSize: pageSize,
            ...search
         },
         success: function (result) {
            // console.log(result)
            if (result.code === 200) {
               let html = template('posts_template', result.data)
               $('tbody').html(html);
               // 添加分页结构
               setPaginator(Math.ceil(result.data.total / pageSize))
            }
         }
      })
   }
   init();

   // 实现分页
   // 通过使用分页插件来实现
   function setPaginator(total) {
      //初始化
      $('.pagination').bootstrapPaginator({
         bootstrapMajorVersion: 3,
         currentPage: pageNum,
         totalPages: total,
         onPageClicked: function (event, originalEvent, type, page) {
            // console.log(type, page)
            // 修改全局页数
            pageNum = page;
            init()
         }
      })
   }

   //加载分类数据
   $.ajax({
      type: 'get',
      url: '/getAllCate',
      success: function (res) {
         // console.log(res)
         // 生成动态结构
         if (res.code === 200) {
            let str = `<option value="all">所有分类</option>`
            for (let i = 0; i < res.data.length; i++) {
               str += `<option value="${res.data[i].id}">${res.data[i].name}</option>`
            }
            $(".cateSelector").html(str)
         }
      }
   })


   // 实现筛选功能
   $('.btn-search').on('click', function () {
      // 收集数据
      let obj = {
         cate: $('.cateSelector').val(),
         status: $('.statusSelector').val()
      }
      // console.log(obj)
      // 发送ajax请求
      init(obj);
   })

   // 实现删除功能--给删除按钮绑定事件委托
   $('tbody').on('click', '.btnDel', function () {
      let id = $(this).data().id;
      // 删除确认
      if(confirm('确定要删除吗？')){
         // 发送ajax请求
         $.ajax({
            type:'get',
            url:'/deletePostById?id='+id,
            success:function(res){
               // console.log(res)
               if(res.code === 200 ){
                  $('.alert-danger > span').text(res.msg)
                  $('.alert-danger').fadeIn(500).delay(3000).fadeOut(500)
                  init()
                  // 思考
                  // 如果一页只有一条文章信息，删除之后，怎么跳转回上一页？
               }
            }
         })
      }

   })

})